package cn.smart.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class GardenExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public GardenExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andGidIsNull() {
            addCriterion("gId is null");
            return (Criteria) this;
        }

        public Criteria andGidIsNotNull() {
            addCriterion("gId is not null");
            return (Criteria) this;
        }

        public Criteria andGidEqualTo(Integer value) {
            addCriterion("gId =", value, "gid");
            return (Criteria) this;
        }

        public Criteria andGidNotEqualTo(Integer value) {
            addCriterion("gId <>", value, "gid");
            return (Criteria) this;
        }

        public Criteria andGidGreaterThan(Integer value) {
            addCriterion("gId >", value, "gid");
            return (Criteria) this;
        }

        public Criteria andGidGreaterThanOrEqualTo(Integer value) {
            addCriterion("gId >=", value, "gid");
            return (Criteria) this;
        }

        public Criteria andGidLessThan(Integer value) {
            addCriterion("gId <", value, "gid");
            return (Criteria) this;
        }

        public Criteria andGidLessThanOrEqualTo(Integer value) {
            addCriterion("gId <=", value, "gid");
            return (Criteria) this;
        }

        public Criteria andGidIn(List<Integer> values) {
            addCriterion("gId in", values, "gid");
            return (Criteria) this;
        }

        public Criteria andGidNotIn(List<Integer> values) {
            addCriterion("gId not in", values, "gid");
            return (Criteria) this;
        }

        public Criteria andGidBetween(Integer value1, Integer value2) {
            addCriterion("gId between", value1, value2, "gid");
            return (Criteria) this;
        }

        public Criteria andGidNotBetween(Integer value1, Integer value2) {
            addCriterion("gId not between", value1, value2, "gid");
            return (Criteria) this;
        }

        public Criteria andGmacIsNull() {
            addCriterion("gMac is null");
            return (Criteria) this;
        }

        public Criteria andGmacIsNotNull() {
            addCriterion("gMac is not null");
            return (Criteria) this;
        }

        public Criteria andGmacEqualTo(String value) {
            addCriterion("gMac =", value, "gmac");
            return (Criteria) this;
        }

        public Criteria andGmacNotEqualTo(String value) {
            addCriterion("gMac <>", value, "gmac");
            return (Criteria) this;
        }

        public Criteria andGmacGreaterThan(String value) {
            addCriterion("gMac >", value, "gmac");
            return (Criteria) this;
        }

        public Criteria andGmacGreaterThanOrEqualTo(String value) {
            addCriterion("gMac >=", value, "gmac");
            return (Criteria) this;
        }

        public Criteria andGmacLessThan(String value) {
            addCriterion("gMac <", value, "gmac");
            return (Criteria) this;
        }

        public Criteria andGmacLessThanOrEqualTo(String value) {
            addCriterion("gMac <=", value, "gmac");
            return (Criteria) this;
        }

        public Criteria andGmacLike(String value) {
            addCriterion("gMac like", value, "gmac");
            return (Criteria) this;
        }

        public Criteria andGmacNotLike(String value) {
            addCriterion("gMac not like", value, "gmac");
            return (Criteria) this;
        }

        public Criteria andGmacIn(List<String> values) {
            addCriterion("gMac in", values, "gmac");
            return (Criteria) this;
        }

        public Criteria andGmacNotIn(List<String> values) {
            addCriterion("gMac not in", values, "gmac");
            return (Criteria) this;
        }

        public Criteria andGmacBetween(String value1, String value2) {
            addCriterion("gMac between", value1, value2, "gmac");
            return (Criteria) this;
        }

        public Criteria andGmacNotBetween(String value1, String value2) {
            addCriterion("gMac not between", value1, value2, "gmac");
            return (Criteria) this;
        }

        public Criteria andGnameIsNull() {
            addCriterion("gName is null");
            return (Criteria) this;
        }

        public Criteria andGnameIsNotNull() {
            addCriterion("gName is not null");
            return (Criteria) this;
        }

        public Criteria andGnameEqualTo(String value) {
            addCriterion("gName =", value, "gname");
            return (Criteria) this;
        }

        public Criteria andGnameNotEqualTo(String value) {
            addCriterion("gName <>", value, "gname");
            return (Criteria) this;
        }

        public Criteria andGnameGreaterThan(String value) {
            addCriterion("gName >", value, "gname");
            return (Criteria) this;
        }

        public Criteria andGnameGreaterThanOrEqualTo(String value) {
            addCriterion("gName >=", value, "gname");
            return (Criteria) this;
        }

        public Criteria andGnameLessThan(String value) {
            addCriterion("gName <", value, "gname");
            return (Criteria) this;
        }

        public Criteria andGnameLessThanOrEqualTo(String value) {
            addCriterion("gName <=", value, "gname");
            return (Criteria) this;
        }

        public Criteria andGnameLike(String value) {
            addCriterion("gName like", value, "gname");
            return (Criteria) this;
        }

        public Criteria andGnameNotLike(String value) {
            addCriterion("gName not like", value, "gname");
            return (Criteria) this;
        }

        public Criteria andGnameIn(List<String> values) {
            addCriterion("gName in", values, "gname");
            return (Criteria) this;
        }

        public Criteria andGnameNotIn(List<String> values) {
            addCriterion("gName not in", values, "gname");
            return (Criteria) this;
        }

        public Criteria andGnameBetween(String value1, String value2) {
            addCriterion("gName between", value1, value2, "gname");
            return (Criteria) this;
        }

        public Criteria andGnameNotBetween(String value1, String value2) {
            addCriterion("gName not between", value1, value2, "gname");
            return (Criteria) this;
        }

        public Criteria andGtimeIsNull() {
            addCriterion("gTime is null");
            return (Criteria) this;
        }

        public Criteria andGtimeIsNotNull() {
            addCriterion("gTime is not null");
            return (Criteria) this;
        }

        public Criteria andGtimeEqualTo(Date value) {
            addCriterion("gTime =", value, "gtime");
            return (Criteria) this;
        }

        public Criteria andGtimeNotEqualTo(Date value) {
            addCriterion("gTime <>", value, "gtime");
            return (Criteria) this;
        }

        public Criteria andGtimeGreaterThan(Date value) {
            addCriterion("gTime >", value, "gtime");
            return (Criteria) this;
        }

        public Criteria andGtimeGreaterThanOrEqualTo(Date value) {
            addCriterion("gTime >=", value, "gtime");
            return (Criteria) this;
        }

        public Criteria andGtimeLessThan(Date value) {
            addCriterion("gTime <", value, "gtime");
            return (Criteria) this;
        }

        public Criteria andGtimeLessThanOrEqualTo(Date value) {
            addCriterion("gTime <=", value, "gtime");
            return (Criteria) this;
        }

        public Criteria andGtimeIn(List<Date> values) {
            addCriterion("gTime in", values, "gtime");
            return (Criteria) this;
        }

        public Criteria andGtimeNotIn(List<Date> values) {
            addCriterion("gTime not in", values, "gtime");
            return (Criteria) this;
        }

        public Criteria andGtimeBetween(Date value1, Date value2) {
            addCriterion("gTime between", value1, value2, "gtime");
            return (Criteria) this;
        }

        public Criteria andGtimeNotBetween(Date value1, Date value2) {
            addCriterion("gTime not between", value1, value2, "gtime");
            return (Criteria) this;
        }

        public Criteria andGmaxIsNull() {
            addCriterion("gMax is null");
            return (Criteria) this;
        }

        public Criteria andGmaxIsNotNull() {
            addCriterion("gMax is not null");
            return (Criteria) this;
        }

        public Criteria andGmaxEqualTo(Integer value) {
            addCriterion("gMax =", value, "gmax");
            return (Criteria) this;
        }

        public Criteria andGmaxNotEqualTo(Integer value) {
            addCriterion("gMax <>", value, "gmax");
            return (Criteria) this;
        }

        public Criteria andGmaxGreaterThan(Integer value) {
            addCriterion("gMax >", value, "gmax");
            return (Criteria) this;
        }

        public Criteria andGmaxGreaterThanOrEqualTo(Integer value) {
            addCriterion("gMax >=", value, "gmax");
            return (Criteria) this;
        }

        public Criteria andGmaxLessThan(Integer value) {
            addCriterion("gMax <", value, "gmax");
            return (Criteria) this;
        }

        public Criteria andGmaxLessThanOrEqualTo(Integer value) {
            addCriterion("gMax <=", value, "gmax");
            return (Criteria) this;
        }

        public Criteria andGmaxIn(List<Integer> values) {
            addCriterion("gMax in", values, "gmax");
            return (Criteria) this;
        }

        public Criteria andGmaxNotIn(List<Integer> values) {
            addCriterion("gMax not in", values, "gmax");
            return (Criteria) this;
        }

        public Criteria andGmaxBetween(Integer value1, Integer value2) {
            addCriterion("gMax between", value1, value2, "gmax");
            return (Criteria) this;
        }

        public Criteria andGmaxNotBetween(Integer value1, Integer value2) {
            addCriterion("gMax not between", value1, value2, "gmax");
            return (Criteria) this;
        }

        public Criteria andGopIsNull() {
            addCriterion("gOp is null");
            return (Criteria) this;
        }

        public Criteria andGopIsNotNull() {
            addCriterion("gOp is not null");
            return (Criteria) this;
        }

        public Criteria andGopEqualTo(Integer value) {
            addCriterion("gOp =", value, "gop");
            return (Criteria) this;
        }

        public Criteria andGopNotEqualTo(Integer value) {
            addCriterion("gOp <>", value, "gop");
            return (Criteria) this;
        }

        public Criteria andGopGreaterThan(Integer value) {
            addCriterion("gOp >", value, "gop");
            return (Criteria) this;
        }

        public Criteria andGopGreaterThanOrEqualTo(Integer value) {
            addCriterion("gOp >=", value, "gop");
            return (Criteria) this;
        }

        public Criteria andGopLessThan(Integer value) {
            addCriterion("gOp <", value, "gop");
            return (Criteria) this;
        }

        public Criteria andGopLessThanOrEqualTo(Integer value) {
            addCriterion("gOp <=", value, "gop");
            return (Criteria) this;
        }

        public Criteria andGopIn(List<Integer> values) {
            addCriterion("gOp in", values, "gop");
            return (Criteria) this;
        }

        public Criteria andGopNotIn(List<Integer> values) {
            addCriterion("gOp not in", values, "gop");
            return (Criteria) this;
        }

        public Criteria andGopBetween(Integer value1, Integer value2) {
            addCriterion("gOp between", value1, value2, "gop");
            return (Criteria) this;
        }

        public Criteria andGopNotBetween(Integer value1, Integer value2) {
            addCriterion("gOp not between", value1, value2, "gop");
            return (Criteria) this;
        }

        public Criteria andGuidIsNull() {
            addCriterion("guId is null");
            return (Criteria) this;
        }

        public Criteria andGuidIsNotNull() {
            addCriterion("guId is not null");
            return (Criteria) this;
        }

        public Criteria andGuidEqualTo(Integer value) {
            addCriterion("guId =", value, "guid");
            return (Criteria) this;
        }

        public Criteria andGuidNotEqualTo(Integer value) {
            addCriterion("guId <>", value, "guid");
            return (Criteria) this;
        }

        public Criteria andGuidGreaterThan(Integer value) {
            addCriterion("guId >", value, "guid");
            return (Criteria) this;
        }

        public Criteria andGuidGreaterThanOrEqualTo(Integer value) {
            addCriterion("guId >=", value, "guid");
            return (Criteria) this;
        }

        public Criteria andGuidLessThan(Integer value) {
            addCriterion("guId <", value, "guid");
            return (Criteria) this;
        }

        public Criteria andGuidLessThanOrEqualTo(Integer value) {
            addCriterion("guId <=", value, "guid");
            return (Criteria) this;
        }

        public Criteria andGuidIn(List<Integer> values) {
            addCriterion("guId in", values, "guid");
            return (Criteria) this;
        }

        public Criteria andGuidNotIn(List<Integer> values) {
            addCriterion("guId not in", values, "guid");
            return (Criteria) this;
        }

        public Criteria andGuidBetween(Integer value1, Integer value2) {
            addCriterion("guId between", value1, value2, "guid");
            return (Criteria) this;
        }

        public Criteria andGuidNotBetween(Integer value1, Integer value2) {
            addCriterion("guId not between", value1, value2, "guid");
            return (Criteria) this;
        }

        public Criteria andGpicIsNull() {
            addCriterion("gpic is null");
            return (Criteria) this;
        }

        public Criteria andGpicIsNotNull() {
            addCriterion("gpic is not null");
            return (Criteria) this;
        }

        public Criteria andGpicEqualTo(String value) {
            addCriterion("gpic =", value, "gpic");
            return (Criteria) this;
        }

        public Criteria andGpicNotEqualTo(String value) {
            addCriterion("gpic <>", value, "gpic");
            return (Criteria) this;
        }

        public Criteria andGpicGreaterThan(String value) {
            addCriterion("gpic >", value, "gpic");
            return (Criteria) this;
        }

        public Criteria andGpicGreaterThanOrEqualTo(String value) {
            addCriterion("gpic >=", value, "gpic");
            return (Criteria) this;
        }

        public Criteria andGpicLessThan(String value) {
            addCriterion("gpic <", value, "gpic");
            return (Criteria) this;
        }

        public Criteria andGpicLessThanOrEqualTo(String value) {
            addCriterion("gpic <=", value, "gpic");
            return (Criteria) this;
        }

        public Criteria andGpicLike(String value) {
            addCriterion("gpic like", value, "gpic");
            return (Criteria) this;
        }

        public Criteria andGpicNotLike(String value) {
            addCriterion("gpic not like", value, "gpic");
            return (Criteria) this;
        }

        public Criteria andGpicIn(List<String> values) {
            addCriterion("gpic in", values, "gpic");
            return (Criteria) this;
        }

        public Criteria andGpicNotIn(List<String> values) {
            addCriterion("gpic not in", values, "gpic");
            return (Criteria) this;
        }

        public Criteria andGpicBetween(String value1, String value2) {
            addCriterion("gpic between", value1, value2, "gpic");
            return (Criteria) this;
        }

        public Criteria andGpicNotBetween(String value1, String value2) {
            addCriterion("gpic not between", value1, value2, "gpic");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}